SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO



CREATE  PROC [dbo].[SP_TXMVTO_CNTB_U04]  
/*-------------------------------------------------------------------*/    
/*----- Empresa           : OFISIS S.A.                          ----*/    
/*----- Cliente           : OFISIS S.A.                          ----*/    
/*----- Sistema           : Contabilidad                         ----*/    
/*----- Modulo            : Empresa                              ----*/    
/*----- Programa          : Actualizaci?n de la Cont. Destino    ----*/    
/*-----                     Traslaci?n en linea                  ----*/    
/*----- Nombre            : SP_TXMVTO_CNTB_U04                   ----*/    
/*----- Script            : TXMVTO_CNTB                          ----*/    
/*----- Desarrollado por  : Jos? Alberto Guevara                 ----*/    
/*----- Fecha             : 10/12/2003                           ----*/    
/*----- Base de Datos     : MS SQL Server                        ----*/    
/*----- Version BD        : 7.0                                  ----*/    
/*-------------------------------------------------------------------*/    
/*-------------------------------------------------------------------*/  
/*----- Modificado 1 por : percy garcia                          ----*/  
/*----- Fecha Modifica   : 05/06/2004                            ----*/  
/*----- Detalle Modifica : usuario creacion y modif              ----*/  
/*-------------------------------------------------------------------*/  
/*-------------------------------------------------------------------*/    
/*----- Drop proc SP_TXMVTO_CNTB_U04                             ----*/    
/*----- Grant all on SP_TXMVTO_CNTB_U04 to PUBLIC                ----*/    
/*----- SP_TXMVTO_CNTB_U04                                       ----*/    
/*-------------------------------------------------------------------*/    
--  '01', 4, '001','003',2003,12,'00000000003',1,'12/12/2003','55910','','','','',null,null,'abo','sol','pac'  
  
@ISCO_EMPR   TD_VC_002,    
@INNU_CNTB_DEST   TD_IN_001_CONT,    
@ISCO_UNID_CNTB   TD_VC_003,     
@ISCO_OPRC_CNTB   TD_VC_003,    
@INNU_ANNO   TD_IN_004_ANNO,    
@INNU_MESE   TD_IN_002_MESE,    
@ISNU_ASTO   TD_VC_010,    
@INNU_SECU   TD_IN_002,    
@IDFE_ASTO_CNTB   TD_DT_001,    
@ISCO_CNTA_EMPR   TD_VC_020_CNTA,     
@ISTI_AUXI_EMPR   TD_VC_001,    
@ISCO_AUXI_EMPR   TD_VC_020,    
@ISTI_DOCU   TD_VC_003,    
@ISNU_DOCU   TD_VC_020,     
@IDFE_DOCU   TD_DT_001,     
@IDFE_DOCU_VENC   TD_DT_001,     
@ISTI_OPER   TD_VC_003,    
@ISCO_MONE   TD_VC_003,     
@ISTI_CAMB   TD_VC_003,     
@INFA_CAMB   TD_NU_015_006,    
@INIM_MVTO_ORIG   TD_NU_016_004,     
@ISCO_ORDE_SERV   TD_VC_020,    
@ISDE_GLOS   TD_VC_100,    
@ISTI_DOCU_REFE   TD_VC_003,    
@ISNU_DOCU_REFE   TD_VC_020,    
@IDFE_DOCU_REFE   TD_DT_001,    
@ISNO_GIRA   TD_VC_050,    
@INIM_MVTO_RETE   TD_NU_016_004,    
@INIM_MVTO_CNTB   TD_NU_016_004,   
@ISTI_DOCU_DETR TD_VC_003,   
@ISNU_DOCU_DETR TD_VC_020,   
@IDFE_DOCU_DETR TD_DT_001    
As  
Begin Transaction SP_TXMVTO_CNTB_U04  
DECLARE  
@VSST_CNTA_CAMB     TD_VC_003,  
@VSCO_MONE_0001         TD_VC_003,  
@VSCO_MONE_BA01         TD_VC_003,  
@VSCO_MONE_CNT2  TD_VC_003  
  
 If @ISTI_AUXI_EMPR = ''    
 Select @ISTI_AUXI_EMPR = NULL    
 If @ISCO_AUXI_EMPR = ''    
 Select @ISCO_AUXI_EMPR = NULL    
 If @ISTI_DOCU = ''    
 Select @ISTI_DOCU = NULL    
 If @ISNU_DOCU = ''    
 Select @ISNU_DOCU = NULL    
 If @IDFE_DOCU = ''    
 Select @IDFE_DOCU = NULL    
 If @ISCO_ORDE_SERV IS NULL or @ISCO_ORDE_SERV = ''    
 Select @ISCO_ORDE_SERV = NULL    
  
-- obtiene la moneda de la contabilidad destino para realizar   
-- la conversion respectiva de los importes a la moneda destino  
-- obtiene la situacion si es 'COM' O 'VEN'  
  
       Select @VSST_CNTA_CAMB = ST_CNTA_CAMB  
       From TMPLAN_EMPR  
       Where CO_EMPR = @ISCO_EMPR  
       And   CO_CNTA_EMPR = @ISCO_CNTA_EMPR  
       And   NU_ANNO = 9999  
  
-- Saca el codigo de la moneda   
 SELECT @VSCO_MONE_CNT2 = CO_MONE  
 FROM TTCNTB_EMPR  
 WHERE CO_EMPR = @ISCO_EMPR  
 AND NU_CNTB_EMPR = @INNU_CNTB_DEST   
  If @ISCO_MONE = @VSCO_MONE_CNT2        
   Begin        
     Select @INIM_MVTO_CNTB = @INIM_MVTO_ORIG        
     Select @ISTI_CAMB = 'PAC'        
     if @INIM_MVTO_CNTB != 0.00        
       Select @INFA_CAMB = Round((@INIM_MVTO_ORIG / @INIM_MVTO_CNTB),3)        
     Else        
       Select @INFA_CAMB = 1.000000        
   End                
  Else -- si el codigo de la moneda es distinto al de la contabilidad       
   Begin        
   Select @VSCO_MONE_0001 = CO_MON1,   
   @VSCO_MONE_BA01 = CO_MONE_BAS1    
   From TMCONV_MONE   
   Where CO_MONE_ORIG = @ISCO_MONE   
   And CO_MONE_DEST = @VSCO_MONE_CNT2  
  
   Select @INFA_CAMB = (Case When @VSST_CNTA_CAMB = 'COM' Then FA_CMPR_OFIC    
   Else FA_VNTA_OFIC End)     
   From TCFACT_CAMB     
    Where CO_MONE = @VSCO_MONE_0001    
   And CO_MONE_BASE = @VSCO_MONE_BA01  
   And Convert(DateTime, Convert(Varchar, FE_CAMB, 103), 103)  =     
   Convert(DateTime, Convert(Varchar, @IDFE_ASTO_CNTB, 103), 103)     
       
     ---- Convierte importe original en importe moneda contabilidad        
 Execute SP_CONV_MONE_Q01  @ISCO_EMPR, @ISCO_MONE, @INNU_CNTB_DEST, @ISTI_CAMB, @VSST_CNTA_CAMB,        
 @INFA_CAMB, @IDFE_ASTO_CNTB, @INIM_MVTO_ORIG, 'P', @INIM_MVTO_CNTB OutPut        
 End --DEL ELSE       
  
  
 Update TXMVTO_CNTB    
 set FE_ASTO_CNTB = @IDFE_ASTO_CNTB,     
  CO_CNTA_EMPR = @ISCO_CNTA_EMPR,     
  TI_AUXI_EMPR = @ISTI_AUXI_EMPR,     
  CO_AUXI_EMPR = @ISCO_AUXI_EMPR,     
  TI_DOCU      = @ISTI_DOCU,     
  NU_DOCU      = @ISNU_DOCU,     
  FE_DOCU      = @IDFE_DOCU,    
  FE_DOCU_VENC = @IDFE_DOCU_VENC,     
  TI_CAMB      = @ISTI_CAMB,     
  CO_MONE      = @ISCO_MONE,     
  FA_CAMB      = @INFA_CAMB,    
  TI_OPER      = @ISTI_OPER,     
  IM_MVTO_ORIG = @INIM_MVTO_ORIG,    
  IM_MVTO_CNTB = @INIM_MVTO_CNTB,     
  DE_GLOS      = @ISDE_GLOS,     
  TI_DOCU_REFE = @ISTI_DOCU_REFE,    
  NU_DOCU_REFE = @ISNU_DOCU_REFE,    
  FE_DOCU_REFE = @IDFE_DOCU_REFE,    
  NO_GIRA      = @ISNO_GIRA,     
  CO_ORDE_SERV = @ISCO_ORDE_SERV,    
  IM_MVTO_RETE = @INIM_MVTO_RETE,    
  TI_DOCU_DETR = @ISTI_DOCU_DETR,    
  NU_DOCU_DETR = @ISNU_DOCU_DETR,    
  FE_DOCU_DETR = @IDFE_DOCU_DETR,    
  CO_USUA_MODI = system_user,    
  FE_USUA_MODI = getdate()    
 Where CO_EMPR      = @ISCO_EMPR    
 and NU_CNTB_EMPR = @INNU_CNTB_DEST    
 and CO_UNID_CNTB = @ISCO_UNID_CNTB    
 and CO_OPRC_CNTB = @ISCO_OPRC_CNTB     
 and NU_ANNO      = @INNU_ANNO    
 and NU_MESE      = @INNU_MESE    
 and NU_ASTO      = @ISNU_ASTO    
 and NU_SECU      = @INNU_SECU    
       
  if @@ERROR != 0    
   Begin    
     Rollback Tran    
     Return    
   End    
 Commit Tran    
     
Return    
/*------------------------------- Fin -----------------------------------*/  






GO
